#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
	int la,i,j,lw,flag,ii,jj;
	char a[1001],b[1001],ch;
	lw=0;
	jj=0;
	printf("Enter a sentence: ");
	gets(a);
	for(i=0;;i++)
	{
		if(a[i]=='.'||a[i]=='!'||a[i]=='?')
		break;
	}
	ch=a[i];//存结束符 
	la=i;//除掉结束符的字符串长度 
	for(i=la-1;i>=0;i--)
	{
		if(a[i]==' ')
		{
			flag=0;//空格标记为"0" 
		}
		else
		{
			lw++;//记录单词长度 
			flag=1;//字符标记为"1" 
		}
		if(flag==0&&lw!=0)//单词长度计数停止，标记转为"0",单词读取结束，读到空格 
		{
			ii=i+1;//ii记录单词首字母位置
			for(j=0;j<lw;j++,ii++,jj++)
			{ 
				b[jj]=a[ii];//存单词，jj在循环外赋初值 0，保证 b数组 的连贯 
			}
			b[jj]=' ';//单词后接空格 
			jj++;
			lw=0;//单词长度清零 
		}
		if(flag==1&&i==0)//处理原字符串句首 无 空格时第一个单词 
		{
			ii=i;//ii记录单词首字母位置 
			for(j=0;j<lw;j++,ii++,jj++)
			{
				b[jj]=a[ii];//存单词
			}
			b[jj++]=ch;//新字符串最后一个单词后接结束符 
			b[jj]='\0';
		}
		if(flag==0&&i==0)//处理原字符串句首 有 空格
		{	
		   b[jj-1]=ch;//新字符串最后一个单词后接结束符 
		   b[jj]='\0';
		}
	}
	printf("Reversal of sentence: %s\n",b);
	return 0;
}